package com.课上案例练习.线程.线程操作;


/**
 * 线程礼让
 * 当告知当前线程可以将执行权转让给优先级相对高一点的线程，但仅仅只是告知，并不是强制的要求
 * 也有可能下个执行权还在原线程手中
 *
 * 线程礼让不会将当前线程变为阻塞态，而是变为就绪态，而cpu，所以下一次执行权分配可能给该线程
 *
 */
public class Test5 {
    public static void main(String[] args) {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println("线程1: " + i);
                }
            }
        });
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    if(i==10){
                        //当i等于10的时候该线程礼让,但是不一定会交出线程执行权
                        Thread.yield();
                    }
                    System.out.println("线程2: " + i);
                }
            }
        });

        t1.start();
        t2.start();
    }
}
